#include "wx/wxprec.h"
#include "wx/xrc/xh_bttn.h"

IMPLEMENT_DYNAMIC_CLASS( wxButtonXmlHandler, wxXmlResourceHandler )

wxButtonXmlHandler::wxButtonXmlHandler()
  : wxXmlResourceHandler() {
  XRC_ADD_STYLE( wxBU_LEFT );
  XRC_ADD_STYLE( wxBU_RIGHT );
  XRC_ADD_STYLE( wxBU_TOP );
  XRC_ADD_STYLE( wxBU_BOTTOM );
  XRC_ADD_STYLE( wxBU_EXACTFIT );
  AddWindowStyles();
}

wxObject *wxButtonXmlHandler::DoCreateResource() {
  XRC_MAKE_INSTANCE( button, wxButton )
  button->Create( m_parentAsWindow,
                  GetID(),
                  GetText( wxT( "label" ) ),
                  GetPosition(), GetSize(),
                  GetStyle(),
                  wxDefaultValidator,
                  GetName() );
  if( GetBool( wxT( "default" ), 0 ) ) {
    button->SetDefault();
  }
  SetupWindow( button );
  return button;
}

bool wxButtonXmlHandler::CanHandle( wxXmlNode *node ) {
  return IsOfClass( node, wxT( "wxButton" ) );
}
